// null == undefined 是true还是false
// 手机号码的正则
// settimeout中的代码什么时候执行，如果是包装在promise里面呢
// 几种解决跨域的方案
// vue中computed和watch的区别
// 写原型继承的实例
// 写闭包函数的用法
// 伪类有哪些
// 超链接在鼠标悬停时没有下划线
// 设计对象深拷贝
// var result=JSON.parse(JSON.stringify(oldObj))
// promise的实现原理，如何自己实现
// 切换tab页，保持之前的tab页激活。一个tab有接受长连接数据渲染到页面上的逻辑，切换tab页，这个页面也会保持活性一直在接收数据做渲染
// 前端如何压缩图片大小 
// 浏览器有字体大小的限制，chrome是12px，如何突破限制，实现更小的字体   transform: scale(0.5,0.5);
// display none 和 visibility: hidden的区别


// ABCDE 5个字母随机排列，要求A出现在第一位的概率是4%，其余是24%，其他位置概率相同
// 4:24就是1：6，思路可以是改变数组池，只有一个A，6组BCDE，对第一个字符单独处理，之后再用普通数组池来取随机值
let pool = ['A', 'B', 'C', 'D', 'E']
let t = ['B', 'C', 'D', 'E']
let poolFirst = pool.concat(t).concat(t).concat(t).concat(t)

let str = ''
// 第一个字符
let r = Math.random() * poolFirst.length
str += poolFirst[Math.floor(r)]
console.log(str)

// 除去第一个已经被取到的字符   题目好像没说要不重复。。
// switch(str){
//     case 'A':
//         pool.splice(0, 1)
//         break
//     case 'B':
//         pool.splice(1, 1)
//         break
//     case 'C':
//         pool.splice(2, 1)
//         break
//     case 'D':
//         pool.splice(3, 1)
//         break
//     case 'E':
//         pool.splice(4, 1)
//         break
// }

// 后四个字符
let i = 0
while(i < 4){
    let r = Math.random() * pool.length
    str += pool[Math.floor(r)]
    i++
}
console.log(str)
